home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Libraries / Graphic Elements 3 / LibHdrs / List.h < prev    next >
Text File  |  1994-01-21  |  968b  |  61 lines

  1. /*
  2.     List.h
  3.     
  4.     Routines for maintaining ordered linked lists
  5.  
  6.     Copyright 1993, 1994 by Al Evans -- all rights reserved
  7.     
  8.     4/13/93
  9.     
  10.     Modified 1/10/94 to allocate new blocks as required
  11.     
  12. */
  13.  
  14. #ifndef LLISTS
  15. #define LLISTS
  16.  
  17. typedef struct LMember *LMemberPtr;
  18.  
  19. typedef struct LMember {
  20.     LMemberPtr        next;
  21.     long            data;
  22. } LMember;
  23.  
  24. typedef struct LHeader *LHeaderPtr;
  25.  
  26. typedef struct LHeader {
  27.     LMemberPtr        listHead;
  28.     LMemberPtr        free;
  29.     LHeaderPtr        nextChunk;
  30.     short            entrySize;
  31.     short            chunkSize;
  32. } LHeader;
  33.  
  34. typedef Boolean (*CompareProc) (Ptr p1, Ptr p2);
  35.  
  36. #ifdef __cplusplus
  37. extern "C" {
  38. #endif
  39.  
  40. LHeaderPtr InitList(short chunkSize, short entrySize);
  41.  
  42. LMemberPtr AllocateEntry(LHeaderPtr thisList);
  43.  
  44. void InsertEntry(LHeaderPtr thisList, LMemberPtr thisMember, CompareProc goesAfter);
  45.  
  46. void DeleteEntry(LHeaderPtr thisList, LMemberPtr thisMember);
  47.  
  48. void ClearList(LHeaderPtr thisList);
  49.  
  50. void DeleteList(LHeaderPtr thisList);
  51.  
  52. #ifdef __cplusplus
  53. }
  54. #endif
  55.  
  56. #endif
  57.  
  58.  
  59.  
  60.  
  61.